package com.zhike.service.messages;

import java.util.List;

import com.zhike.common.repository.ACKMessage;
import com.zhike.common.repository.HistoryMessage;

public interface IACKMessageRepository {

    /**
     * 保存未读消息的消息
     * 
     * @param messageId
     * @param fromUid
     * @param toUid
     */
    void saveAckMessageSingle(String messageId, String fromUid, String toUid) throws Exception;

    /**
     * 批量保存未读
     * 
     * @param hms
     */
    void batchSaveAckMessageSingle(List<HistoryMessage> hms) throws Exception;

    /**
     * 保存未读消息的消息
     * 
     * @param messageId
     * @param fromUid
     * @param groupId
     */
    void saveAckMessageForGroup(String messageId, String fromUid, String groupId);

    /**
     * 删除已读消息记录
     * 
     * @param fromUid
     * @param toUid
     */
    void deleteAckMessage(String fromUid, String toUid);

    /**
     * 返回未读消息记录列表
     * 
     * @param fromUid
     * @param toUid
     * @return
     */
    List<ACKMessage> findAckMessage(String fromUid, String toUid);

    /**
     * 未读消息数
     * 
     * @param fromUid
     * @param toUid
     * @return
     * @throws Exception
     */
    long unreadCount(String fromUid, String toUid) throws Exception;
}
